module.exports = {
  printWidth: 120, // 指定打印机将环绕的行长 80
  // tabWidth: 2, // 指定每个缩进级别的空格数 2
  // useTabs: false, // 用制表符而不是空格缩进行 false
  semi: false, // 在语句末尾打印分号 true
  /*
    true - 在每条语句的末尾添加一个分号
    false - 仅在可能引入 ASI 失败的行的开头添加分号。
  */
  singleQuote: true, // 使用单引号代替双引号 false
  quoteProps: 'preserve', // 引用对象中的属性时更改 'as-needed',
  /*
    "as-needed" - 仅在需要时在对象属性周围添加引号。
    "consistent" - 如果对象中至少有一个属性需要引用，请引用所有属性。
    "preserve" - 尊重对象属性中引号的输入使用。
  */
  // jsxSingleQuote: false, // 在 JSX 中使用单引号代替双引号 false
  trailingComma: 'all', // 在多行逗号分隔的句法结构中尽可能打印尾随逗号。 （例如，单行数组永远不会有尾随逗号。） 'es5'
  /*
    "es5" - 在 ES5 中有效的尾随逗号（对象、数组等）。 TypeScript 中的类型参数中没有尾随逗号。
    "none" - 没有尾随逗号。
    "all" - 尽可能尾随逗号（包括函数参数和调用）。要运行，以这种方式格式化的 JavaScript 代码需要一个支持 ES2017（Node.js 8+ 或现代浏览器）或下级编译的引擎。这也支持 TypeScript 中类型参数中的尾随逗号（自 2018 年 1 月发布的 TypeScript 2.7 起支持）。
  */
  // bracketSpacing: true, // 在对象文字中的括号之间打印空格 true
  /*
    true - 示例: { foo: bar }.
    false - 示例: {foo: bar}.
  */
  // bracketSameLine: false, // 将多行 HTML（HTML、JSX、Vue、Angular）元素的 > 放在最后一行的末尾，而不是单独放在下一行（不适用于自关闭元素） false
  /*
    true - 示例:
    <button
      className="prettier-class"
      id="prettier-id"
      onClick={this.handleClick}>
      Click Here
    </button>
    false - 示例:
    <button
      className="prettier-class"
      id="prettier-id"
      onClick={this.handleClick}
    >
      Click Here
    </button> 
  */
  // arrowParens: 'always', // 在唯一的箭头函数参数周围包含括号 'always'
  /*
    "always" - 总是包括括号。示例：(x) => x
    "avoid" - 尽可能省略括号。示例：x => x
  */
  // rangeStart: 0, // 仅格式化文件的一部分 0
  // rangeEnd: Infinity, // 仅格式化文件的一部分 Infinity
  // parser: None, // 指定要使用的解析器 None
  /*
    "babel" （通过@ babel / parser）在 v1.16.0 之前命名为“babylon”
    "babel-flow" （与 "babel" 相同，但显式启用 Flow 解析以避免歧义）首先在 v1.16.0 中可用
    "babel-ts" （类似于“typescript”，但使用 Babel 及其 TypeScript 插件）首先在 v2.0.0 中可用
    "flow" (通过 flow-parser)
    "typescript" (通过 @typescript-eslint/typescript-estree) 首次在 v1.4.0 中可用
    "espree" (通过 espree) 首次在 v2.2.0 中可用
    "meriyah" (通过 meriyah) 首次在 v2.2.0 中可用
    "css" （通过 postcss-scss 和 postcss-less，自动检测要使用的）首先在 v1.7.1 中可用
    "scss" （与“css”相同的解析器，更喜欢 postcss-scss）首先在 v1.7.1 中可用
    "less" （与“css”相同的解析器，更喜欢 postcss-less）首先在 v1.7.1 中可用
    "json" (通过 @babel/parser parseExpression) 首次在 v1.5.0 中可用
    "json5" （与“json”相同的解析器，但输出为 json5）首先在 v1.13.0 中可用
    "json-stringify" （与“json”相同的解析器，但输出类似于 JSON.stringify）首先在 v1.13.0 中可用
    "graphql" (通过 graphql/language) 首次在 v1.5.0 中可用
    "markdown" (通过 remark-parse) 首次在 v1.8.0 中可用
    "mdx" (通过 remark-parse 和 @mdx-js/mdx) 首次在 v1.15.0 中可用
    "html" (通过 angular-html-parser) 首次在 1.15.0 中可用
    "vue" （与“html”相同的解析器，但也格式化特定于 vue 的语法）首先在 1.10.0 中可用
    "angular" （与“html”相同的解析器，但也通过 angular-estree-parser 格式化特定于角度的语法）首先在 1.15.0 中可用
    "lwc" （与“html”相同的解析器，但也为不带引号的模板属性格式化 LWC 特定的语法）首先在 1.17.0 中可用
    "yaml" (通过 yaml 和 yaml-unist-parser) 首次在 1.14.0 中可用
  */
  // requirePragma: false, // Prettier 可以将自身限制为仅在文件顶部包含称为 pragma 的特殊注释的格式文件。这在逐渐将大型无格式代码库过渡到 Prettier 时非常有用。 false
  // insertPragma: false, // Prettier 可以在文件顶部插入一个特殊的 @format 标记，指定文件已使用 Prettier 格式化。这与 --require-pragma 选项一起使用时效果很好。如果文件顶部已经有一个 docblock，则此选项将使用 @format 标记为其添加换行符。 false
  // proseWrap: 'preserve', // 默认情况下，Prettier 将按原样包装 Markdown 文本，因为某些服务使用对换行敏感的渲染器，例如GitHub 评论和 BitBucket。在某些情况下，您可能希望改用编辑器/查看器软包装，因此此选项允许您选择“从不”。 'preserve'
  /*
    "always" - 如果散文超过打印宽度，请换行
    "never" - 不要包装散文
    "preserve" - 按原样包装散文。首次在 v1.9.0 中可用
  */
  // htmlWhitespaceSensitivity: 'css', // 为 HTML、Vue、Angular 和 Handlebars 指定全局空白敏感度。 'css'
  /*
    "css" - 尊重 CSS 显示属性的默认值。对于 Handlebars 一样严格对待
    "strict" - 所有标签周围的空白（或没有空白）被认为是重要的
    "ignore" - 所有标签周围的空白（或没有空白）被认为是无关紧要的
  */
  // vueIndentScriptAndStyle: false, // 是否缩进 Vue 文件中 <script> 和 <style> 标签内的代码。有些人（例如 Vue 的创建者）不缩进以保存缩进级别，但这可能会破坏编辑器中的代码折叠。 false
  /*
    "false" - 不要在 Vue 文件中缩进 script 和 style 标签
    "true" - 在 Vue 文件中缩进脚本和样式标签
  */
  // endOfLine: 'lf', // 由于历史原因，文本文件中存在两种常见的行尾形式。即 \n（或换行的 LF）和 \r\n（或回车 + 换行的 CRLF）。前者在 Linux 和 macOS 上很常见，而后者在 Windows 上很普遍。
  /*
    "lf" – 仅换行符 (\n)，常见于 Linux 和 macOS 以及 git repos 内
    "crlf" - 回车符 + 换行符 (\r\n)，在 Windows 上很常见
    "cr" - 仅回车符 (\r)，很少使用
    "auto" - 维护现有的行尾（通过查看第一行之后使用的内容来规范化一个文件中的混合值）
  */
  // embeddedLanguageFormatting: 'auto', // 控制 Prettier 是否格式化文件中嵌入的引用代码
  /*
    "auto" – 如果 Prettier 可以自动识别，则格式化嵌入的代码
    "off" - 永远不要自动格式化嵌入的代码
  */
}
